Introduzione

Presi alcuni politici italiani si vuole capire se dall’analisi di un social media, in questo caso Twitter, si possa intuire qualche informazione riguardo l’ideologia politica delle persone prese in esame. Sono state scelte 5 persone sulla base di alcuni fattori:

Sono stati scelti in particolare Giuseppe Conte, Luigi di Maio, Giorgia Meloni, Matteo Renzi e Matteo Salvini.

Per l’estrazione dei tweet si è usata l’API fornita da Twitter stesso. Purtroppo, per le limitazioni poste dalla stessa azienda, il numero di tweet estraibili non può superare 3200. Per questo passaggio si è creato uno script in Python che permette l’estrazione consecutiva a ritroso dei tweet e li fonde insieme per creare un unico file .json contente tutti i 3200 per l’utente richiesto. Script Python Quindi sono stati estratti gli ultimi 3200 tweet per ogni politico.

Oltre al testo del tweet è stato possibili estrarre anche le seguenti informazioni per messaggio:

Queste non sono le uniche informazioni ottenibili dall’API, ma dato che le altre non verranno utilizzate si è deciso di eliminarle dal dataset per renderlo più leggero possibile. In seguito si ottengono le informazioni dai 5 file .json, si adegua il dataset ottenuto e si selezionano le informazioni importanti.

Una volta ottenuto il dataset, mi sono posto domande basate su curiosità per provare a rispondere usando i dati in possesso.

Chi è il politico mensilmente più attivo su Twitter?

Dato il limite di 3200 tweet per politico non si può avere lo storico di tutti i tweet per ogni utente. Però può essere interessante paragonare la presenza sul social tra vari politici.

In questo caso si è fatto uso di un full join in quanto è possibile che per un determinato periodo uno degli utenti non abbia pubblicato tweet oppure abbia già raggiunto il limite dei 3200 tweet.

Segue che Matteo Salvini sembra il politico che posta di più su Twitter, o per lo meno nel periodo da Gennaio 2021 a Settembre 2021. Purtroppo non è possibile esaminare precedentemente a quella data perchè è stato il primo a raggiungere il limite dell’API.

Contrariamente pare che Giuseppe Conte non sia nemmeno arrivato al limite dei 3200 tweet, con un minimale di 2 tweet a Febbraio 2021. Si controlla in seguito il numero dei suoi tweet totali.

##    n 
## 1687

Le parole più usate nei tweet possono essere significative per dare un contesto politico?

Si vuole analizzare la frequenza delle parole per poi osservare quelle più usate e cercare di trarre qualcosa del contesto. Per fare ciò bisogna però eliminare le stop words, che in italiano si possono trovare nel pacchetto stopwords di R.

Per la maggior parte degli utenti si può osservare come la parola rt sia al primo posto. Questa informazione fa capire come il tema del COVID-19 sia stato influente nei social anche per i politici e da un’idea del contesto storico da cui questi tweet sono stati estratti, nonostante la variabilità dei mesi dovuta alla frequenza di pubblicazione precedentemente vista.

Un’altra informazione molto interessante è che tra le prime posizioni si può osservare il partito politico di appartenenza nella maggior parte degli utenti. Purtroppo non si può fare ciecamente affidamento ai dati, in particolare in quinta posizione per Giorgia Meloni si osserva la parola sinistra, nonostante il partito politico di cui è presidente sia di destra e estrema destra, secondo Wikipedia.

## # A tibble: 10 × 1
##    data.text                                                                    
##    <chr>                                                                        
##  1 "La sinistra anti-italiana scopre finalmente il valore della parola “Patria”…
##  2 "Rischio prevedibile che FDI denuncia da anni ma finora rimasto inascoltato.…
##  3 "Il fatto che sentir parlare di un Presidente Patriota abbia scandalizzato i…
##  4 "Doccia fredda per la sinistra. Macron, in visita ufficiale in Ungheria, inc…
##  5 "Renzi dice che non vuole allearsi con “Conte e #Meloni”. Ma con i grillini …
##  6 "RT @FratellidItalia: La sinistra non ha proprio nulla da dire contro questa…
##  7 "All'ideologia di questa sinistra noi rispondiamo difendendo l’identità e la…
##  8 "È possibile andare oltre la retorica della sinistra e spiegare agli italian…
##  9 "RT @FratellidItalia: Fratelli d'Italia chiede al governo di Pechino, con cu…
## 10 "L'ennesima dimostrazione di quello che è realmente il pensiero della sinist…

Infatti, provando a contestualizzare si può osservare come Giorgia Meloni menzioni la sinistra per screditarla e non per favorirla.

Dai Tweet con più like o più risposte di un politico si può capire qualcosa dalla sua inclinazione politica?

Avendo a disposizione dei contatori si vuole verificare se c’è un legame tra il numero di like e l’importanza politica del messaggio.

## [1] "Per Giuseppe Conte si ha:"
## # A tibble: 3 × 2
##   data.text                                                           like_count
##   <chr>                                                                    <int>
## 1 Io sto con #Fedez. Nessuna censura. https://t.co/Dr1JWjiHwN              56591
## 2 Silvia Romano è stata liberata! Ringrazio le donne e gli uomini de…      53400
## 3 Congratulations to the American people and institutions for an out…      45152
## [1] "Per Luigi di Maio si ha:"
## # A tibble: 3 × 2
##   data.text                                                           like_count
##   <chr>                                                                    <int>
## 1 "I vitalizi non sono diritti acquisiti, ma privilegi rubati. I pri…       8705
## 2 "Da parte della Turchia 🇹🇷 oggi è arrivato un grande gesto di soli…       8574
## 3 "E' certo che il governo Cottarelli non avrà la fiducia delle Came…       8290
## [1] "Per Giorgia Meloni si ha:"
## # A tibble: 3 × 2
##   data.text                                                           like_count
##   <chr>                                                                    <int>
## 1 Voglio ringraziare quanti mi hanno voluto esprimere solidarietà pe…      12621
## 2 Ringrazio il Presidente Mattarella che mi ha telefonato per esprim…      10248
## 3 Se il governo ritiene di chiudere le #discoteche deve anche chiude…       8736
## [1] "Per Matteo Renzi si ha:"
## # A tibble: 3 × 2
##   data.text                                                           like_count
##   <chr>                                                                    <int>
## 1 Gira un video pieno di falsità sui miei figli. Una vergogna totale…       8783
## 2 Ci aspettano ancora giorni difficili. Noi rispettiamo le regole de…       8022
## 3 Bonafede, Mes, Scuola, Arcuri, vaccini, Alta Velocità, Anpal, redd…       7629
## [1] "Per Matteo Salvini si ha:"
## # A tibble: 3 × 2
##   data.text                                                           like_count
##   <chr>                                                                    <int>
## 1 "\"L’Italia è una Repubblica democratica, fondata sul lavoro. La s…       7386
## 2 "Vaccino, tampone o Green Pass per entrare in bar e ristoranti?\nN…       6331
## 3 "++ Rimosso il Commissario #Arcuri, al suo posto designato il Gene…       5576

Non sembra esserci una strettissima relazione tra le due variabili, infatti 3 politici hanno come messaggio con più like uno basato su battaglie personali piuttosto che politiche. Invece, si può pensare che un messaggio con tante risposte possa essere critico e dividere l’opinione pubblica, ma sarà veramente cosí? Si provano ad osservare 3 messaggi con più risposte per ogni politico.

## [1] "Per Giuseppe Conte si ha:"
## # A tibble: 3 × 2
##   data.text                                                          reply_count
##   <chr>                                                                    <int>
## 1 Questo è il momento del coraggio, e della determinazione. Il cora…        5483
## 2 Grazie a ognuno di voi. Insieme ce la faremo 🇮🇹 https://t.co/IBus…        4847
## 3 Il Governo ottiene la fiducia anche al Senato. Ora l’obiettivo è …        4686
## [1] "Per Luigi di Maio si ha:"
## # A tibble: 3 × 2
##   data.text                                                          reply_count
##   <chr>                                                                    <int>
## 1 "A Natale e a Capodanno permettiamo ai cittadini di spostarsi tra…        6459
## 2 "Mi sorprende la scarcerazione di Carola Rackete. Io ribadisco la…        5856
## 3 "Bene la fiducia alla Camera. Massimo sostegno alle parole del pr…        5027
## [1] "Per Giorgia Meloni si ha:"
## # A tibble: 3 × 2
##   data.text                                                          reply_count
##   <chr>                                                                    <int>
## 1 "🔴 BENVENUTI IN COREA DEL NORD https://t.co/IC72I9fpNq"                  6971
## 2 "Cosa intende Guccini quando dice che con Meloni, Salvini, Berlus…        5194
## 3 "Per quanto si possa fingere di non vederlo, era tutto studiato. …        4567
## [1] "Per Matteo Renzi si ha:"
## # A tibble: 3 × 2
##   data.text                                                          reply_count
##   <chr>                                                                    <int>
## 1 Bonafede, Mes, Scuola, Arcuri, vaccini, Alta Velocità, Anpal, red…        9504
## 2 Abbiamo ascoltato le sagge parole del Presidente della Repubblica…        6532
## 3 Ora è il momento dei costruttori. Ora tutte le persone di buona v…        5434
## [1] "Per Matteo Salvini si ha:"
## # A tibble: 3 × 2
##   data.text                                                          reply_count
##   <chr>                                                                    <int>
## 1 "Complimenti al presidente Draghi per la gestione del G20, con lu…        3793
## 2 "Settimana scorsa si permette a un manipolo di neofascisti di met…        3500
## 3 "Il “concertone” costa circa 500.000 euro agli italiani, a tutti …        3472

Tuttavia non sembra così neanche per i messagi con più risposte, solo i messaggi di Giorgia Meloni sembrano essere apertamente critici nei confronti di altri politici. Anche nel video del primo messaggio critica l’atteggiamento di un politico in una determinata occasione. Ma mediamente il numero di risposte non influenza molto sul fatto che il messaggio stesso abbia un contenuto volto a sindacare.

É possibile estrapolare qualche informazione dalle menzioni delle persone in un tweet

Come si è visto nell’introduzione al dataset, l’API di Twitter permette di estrapolare direttamente il nome di chi viene menzionato e il suo dominio. Filtrando il dominio per Politics é molto semplice capire quale politico viene menzionato e in quale messaggio.

Inoltre è possibile mostrare anche una classifica degli username più menzionati, questa risulta però spesso inutile in quanto fornisce un nome da decifrare e il nome reale della persona avente quell’username é comunque riportato come detto in precedenza e filtrando per il dominio é anche possibile capire se é un esponente politico o meno.

## # A tibble: 5 × 2
##   entity.name          `Giuseppe Conte`
##   <chr>                           <int>
## 1 Luigi di Maio                      27
## 2 Ursula von der Leyen               20
## 3 Pedro Sánchez                      15
## 4 Donald Trump                        8
## 5 Emmanuel Macron                     8
## # A tibble: 5 × 2
##   entity.name       `Luigi di Maio`
##   <chr>                       <int>
## 1 Matteo Renzi                   82
## 2 Beppe Grillo                   54
## 3 Virginia Raggi                 47
## 4 Giuseppe Conte                 35
## 5 Sergio Mattarella              23
## # A tibble: 5 × 2
##   entity.name    `Giorgia Meloni`
##   <chr>                     <int>
## 1 Giuseppe Conte              125
## 2 Luigi di Maio                24
## 3 Matteo Renzi                 20
## 4 Matteo Salvini               20
## 5 Virginia Raggi               13
## # A tibble: 5 × 2
##   entity.name     `Matteo Renzi`
##   <chr>                    <int>
## 1 Matteo Salvini             100
## 2 Joe Biden                   87
## 3 Giuseppe Conte              68
## 4 Emmanuel Macron             48
## 5 Donald Trump                30
## # A tibble: 5 × 2
##   entity.name    `Matteo Salvini`
##   <chr>                     <int>
## 1 Giuseppe Conte               70
## 2 Matteo Renzi                 14
## 3 Beppe Grillo                 12
## 4 Virginia Raggi               12
## 5 Luigi di Maio                10

Rete sociale delle menzioni

Dalle precedenti informazioni si vuole cercare di costruire una rete sociale basata sulle menzioni sopracitate.

Per esempio se si volesse avere un’idea

Se si osserva nei vertici esterni del grafo a stella si possono osservare tutti i politici che vengono citati almeno una volta da ogni utente preso in esame. C’è però una discrepanza con la realtà, infatti Narendra Modi risulta essere si un politico di origine indiana, ma la data di fine mandato è segnata essere il 2014, ben prima della prima data presa in esame.

Si va così a esaminare il testo di un messaggio avente lui come menzione.

## # A tibble: 1 × 1
##   data.text                                                                     
##   <chr>                                                                         
## 1 GRAZIE ai milioni di italiani che continuano a dare fiducia alla Lega e al ce…

Si vede subito come è vero che Modi compare nel messaggio, ma come al solito il messaggio va contestualizzato e la parola modi non si riferiva affatto al politico. Questo insegna che i dati non vanno sempre presi così come vengono, ma vanno interpretati.

Sentiment Analysis sui tweet per capire quali siano relazioni di amicizia e quali di animosità lavorativa

Per fare questo mi sono servito della libreria TextWiller trovabile su GitHub. Nel nostro caso si farà uso della funzione sentiment che ritorna:

A questo punto sarà possibile poi sommare tutti i punteggi e standardizzarli in un range tra [-1; +1] per poter trovare il tipo di relazione tra politici. Una relazione di tipo +1 rappresente un’amicizia lavorativa, al contrario -1 l’opposto.

## # A tibble: 5 × 2
##   entity.name    sentimento_globale
##   <chr>                       <dbl>
## 1 Matteo Salvini             -0.444
## 2 Giorgia Meloni             -0.322
## 3 Matteo Renzi               -0.291
## 4 Donald Tusk                -0.189
## 5 Marine Le Pen              -0.158
## # A tibble: 5 × 2
##   entity.name          sentimento_globale
##   <chr>                             <dbl>
## 1 Emmanuel Macron                   0.244
## 2 Laura Boldrini                    0.243
## 3 Barack Obama                      0.227
## 4 Giuseppe Conte                    0.22 
## 5 Ursula von der Leyen              0.200

La prima tabella rappresenta i 5 politici con cui queste 5 politici presi in esame hanno dei rapporti d’animosità. La seconda tabella riporta i 5 politici per i quali hanno mediamente speso buone parole.

Si può vedere come Giuseppe Conte e Laura Boldrini siano i politici italiani con cui questi 5 utenti hanno maggiore affinità. D’altro canto si può osservare come 3 delle 5 persone prese in esame siano finiti nella classifica per animosità. L’unico escluso da ambo le classifiche sembra essere Luigi di Maio.

Un possibile svolgimento futuro potrebbe essere il poter iterare quest’analisi nel corso degli anni, per fare ciò sarebbe necessario ottenere la modalità Ricerca Accademica di Twitter